// arr1 只能是一个 纯数字组成的数组
const arr1: number[] = [1, 2, 3];

// arr2 只能是一个 纯字符串组成的数组
const arr2: string[] = ["qf001", "qf002", "qf003"];

// 特殊情况: 数组内数据类型不一致  (正常开发中不会遇到)

// arr3 是一个数组, 数组内数据的类型, 不做校验
const arr3: any[] = [100, "qf001", true, undefined, null];
// arr3 是一个 any 类型的数据, 数据的具体类型不做校验
// const arr3: any = [100, 'qf001', true, undefined, null]

// arr4 是一个数组, 数组内的数据是 字符串或者数字
// const arr4: number[] = [100, 'QF001', 200]
// const arr4: string[] = [100, 'QF001', 200]
const arr4: (number | string)[] = [100, "QF001", 200];

// 数组内部是又多个对象组成的
const arr5: { id: number; text: string }[] = [
    { id: 1, text: "qf001" },
    { id: 2, text: "qf002" },
    { id: 3, text: "qf003" },
    { id: 4, text: "qf004" },
];

// 利用接口改造上述代码
interface IArr6 {
    id: number;
    text: string;
}
const arr6: IArr6[] = [
    { id: 1, text: "qf001" },
    { id: 2, text: "qf002" },
    { id: 3, text: "qf003" },
    { id: 4, text: "qf004" },
];

// 利用 泛型 添加数组类型
interface IArr7 {
    id: number;
    text: string;
}

const arr7: Array<IArr7> = [
    { id: 1, text: "qf001" },
    { id: 2, text: "qf002" },
    { id: 3, text: "qf003" },
    { id: 4, text: "qf004" },
];

const arr8: Array<number> = [1, 2, 3];
const arr9: Array<string> = ["1", "2", "3"];
